草庐IT

leetcode 413. Arithmetic Slices 等差数列划分

全部标签

ip地址、子网掩码、网段、子网划分

Ip地址由四个字节(32位二进制)组成,分成四组,每组八位二进制一个简单的理解方式(并不真正是这样的):真正的网络地址划分图里右边三个框里的例如A类,网络号是第一个八位的字节,最大是255,说明可以划分255个网络,然后容纳的主机就是后边的三个字节相乘255*255*255,即16581375台主机B类就是前两个八位的字节,也就是255*255个网络,255*255个地址C类就是前三个八位的字节作为网络的地址,后面最后一个作为主机的地址这个范围有记忆的方法:网段:子网掩码:用来配合ip地址区分网络号和主机号子网掩码的形式和ip地址类似,分四组,每组八位子网掩码和ip地址有一个对应,做一个与运算

算法训练Day35 贪心算法专题 | LeetCode860. 柠檬水找零(没有思路就先模拟过程);406. 根据身高重建队列(不能两头兼顾);452. 用最少数量的箭引爆气球(重叠区间)

前言:算法训练系列是做《代码随想录》一刷,个人的学习笔记和详细的解题思路,总共会有60篇博客来记录,计划用60天的时间刷完。 内容包括了面试常见的10类题目,分别是:数组,链表,哈希表,字符串,栈与队列,二叉树,回溯算法,贪心算法,动态规划,单调栈。博客记录结构上分为思路,代码实现,复杂度分析,思考和收获,四个方面。如果这个系列的博客可以帮助到读者,就是我最大的开心啦,一起LeetCode一起进步呀;) 目录LeetCode860.柠檬水找零 1.思路2.代码实现3.代码实现4.思考与收获LeetCode406.根据身高重建队列1.思路2.代码实现3.复杂度分析4.思考与收获LeetCode4

LeetCode——查询后矩阵的和

目录1、题目2、题目解读3、代码1、题目2718.查询后矩阵的和-力扣(Leetcode)给你一个整数 n 和一个下标从 0 开始的 二维数组 queries ,其中 queries[i]=[typei,indexi,vali] 。一开始,给你一个下标从 0 开始的 nxn 矩阵,所有元素均为 0 。每一个查询,你需要执行以下操作之一:如果 typei==0 ,将第 indexi 行的元素全部修改为 vali ,覆盖任何之前的值。如果 typei==1 ,将第 indexi 列的元素全部修改为 vali ,覆盖任何之前的值。请你执行完所有查询以后,返回矩阵中所有整数的和。示例1:输入:n=3,

Python 与神奇的数学之斐波那契数列

        斐波那契数列(Fibonaccisequence),又称黄金分割数列,因意大利数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为例而引入,故又称为“兔子数列”。        其是指这样一个数列:1、1、2、3、5、8、13、21、34、……第三个数是前两个整数之和。在数学上,其被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)。        1202年,斐波那契在其著作《算盘书》中提出了一个有趣的问题:假设一对刚出生的小兔一个月后就能长成大兔,再过一个月就能生下一对小兔,并且此后每个月都生一对小兔

Python 与神奇的数学之斐波那契数列

        斐波那契数列(Fibonaccisequence),又称黄金分割数列,因意大利数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为例而引入,故又称为“兔子数列”。        其是指这样一个数列:1、1、2、3、5、8、13、21、34、……第三个数是前两个整数之和。在数学上,其被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)。        1202年,斐波那契在其著作《算盘书》中提出了一个有趣的问题:假设一对刚出生的小兔一个月后就能长成大兔,再过一个月就能生下一对小兔,并且此后每个月都生一对小兔

算法leetcode|55. 跳跃游戏(rust重拳出击)

文章目录55.跳跃游戏:样例1:样例2:提示:分析:题解:rust:go:c++:python:java:55.跳跃游戏:给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。样例1:输入: nums=[2,3,1,1,4] 输出: true 解释: 可以先跳1步,从下标0到达下标1,然后再从下标1跳3步到达最后一个下标。样例2:输入: nums=[3,2,1,0,4] 输出: false 解释: 无论怎样,总会到达下标为3的位置。但该下标的最大跳跃长度是0,所以永远不可能到达最后一个下标。提示:

【LeetCode】Day203-最少侧跳次数

题目1824.最少侧跳次数【中等】题解这种后面问题和前面关联的题就容易想到动态规划,问题是dp怎么定义。用0,1,2对跑道进行重新编号,obstacles[i]-1与跑道对应,-1代表无障碍物。状态定义:dp[i][j]表示青蛙到达第i点的第j条跑道所需要的最小侧跳次数。状态转移方程:怎么到达的当前位置呢?有两种方法,第一是从i-1点横着跳过来,第二是从i点其他跑道侧跳过来。首先,如果当前跑道无障碍,青蛙可以不侧跳,直接从i-1点跳到i点,dp[i][j]=dp[i-1][j];如果有障碍,设置dp[i][j]=inf然后,青蛙可以从i点其他跑道侧跳到当前跑道,设minCnt=min(d[i]

代码随想录第一天 | LeetCode704.二分查找,LeetCode 27.移除元素

数组理论基础要点:数组也是数据结构的一种,是存放在连续内存空间上的相同类型数据的集合。数组注意点:数组下标都是从0开始的。数组内存空间的地址是连续的。因为上述两点,数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。但在删除的时候,数组的元素是不能删的,只能覆盖。LeetCode704.二分查找题目链接:704.二分查找-力扣(LeetCode)思路:这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件。写二分法的要点:对区间的定义要想清楚,区间的定

【LeetCode算法成长之路】滑动窗口算法总结与经典题目分析

前言本文小新为大家带来滑动窗口算法相关知识,经过对滑动窗口算法类题目的总结,为大家分享滑动窗口算法概述(包括:滑动窗口算法思想,滑动窗口算法使用场景,滑动窗口算法使用思路),滑动窗口算法代码模板,以及两个经典例题(长度最小的子数组,最小覆盖子串),帮助大家更好的理解与掌握滑动窗口算法~不积跬步,无以至千里;不积小流,无以成江海。每天进步一点点,在成为强者的路上,小新与大家共同成长!📌博主主页:小新要变强的主页👉Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~👉算法刷题路线可参考:算法刷题路线总结与相关

【LeetCode算法成长之路】滑动窗口算法总结与经典题目分析

前言本文小新为大家带来滑动窗口算法相关知识,经过对滑动窗口算法类题目的总结,为大家分享滑动窗口算法概述(包括:滑动窗口算法思想,滑动窗口算法使用场景,滑动窗口算法使用思路),滑动窗口算法代码模板,以及两个经典例题(长度最小的子数组,最小覆盖子串),帮助大家更好的理解与掌握滑动窗口算法~不积跬步,无以至千里;不积小流,无以成江海。每天进步一点点,在成为强者的路上,小新与大家共同成长!📌博主主页:小新要变强的主页👉Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~👉算法刷题路线可参考:算法刷题路线总结与相关